package com.lx.config;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        // 如果请求路径中包含goLogin，则直接放行，因为登录页面不需要登录就可以访问
        if (request.getRequestURI().contains("goLogin")) {
            return true;
        }
        // 第一次登录是没有session的，所以需要放行，否则登录完一直会在登录页面，这里要放行登录请求
        if (request.getRequestURI().contains("login")){
            return true;
        }

        // 获取session中的用户信息，如果不为空，则代表登录了，也放行，但是第一次登录没有session
        if (request.getSession().getAttribute("userInfo") != null) {
            System.out.println("getSession====>"+request.getSession().getAttribute("userInfo"));
            return true;
        }


        // 否则，跳转到登录页面
        request.getRequestDispatcher("/WEB-INF/page/login.jsp").forward(request, response);
        return false;
    }
}
